<%@page import="com.ce.sys.login.model.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/sys/role/";  //应用的地址名
String modifyActionName = basePath+"SysRole_modify.action?op=savejs";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>系统角色表修改</title>
<script type="text/javascript">
<!--
           $(function(){
              $('#roleFrame').layout();
               //初始化工作，因为远程载入该界面时无法通过在标签中进行设置相应的验证属性等信息，必须要在这里进行初始化
               //$('#addBtn').linkbutton();
               $('#vcName').validatebox({
                   required:'true',
                   missingMessage:'必须输入名称',
                   validType:'length[1,20]&specialChar'
               });
	           $('#vcSeq').validatebox({
	              required:'true',
	              missingMessage:'必须输入数字排序号',
	              validType:'intNumber[0,9999]'
	           });
               $('#vcMemo').validatebox({
                   validType:'length[1,100]&specialChar'
               });
               if($('#vcPublic')){
            	   $('#vcPublic').combobox({
                	   panelHeight:50,
                	   panelWidth:40
                	});
               }
               
               $('#zgryTd').click(function(){//点击更换人员
            	   openChildWindow({title:'请选择人员',butParams:{but:[{id:'btnSetUser',name:'确定',classname:'icon-ok'},{id:'btnClose',name:'取消',classname:'icon-close'}]}});
            	   $("#operateWindowChildMain").html('<div id=orgusertree><h1 align=center>正在加载数据...</h1></div>');
            	   $.getJSON('<%=path %>/sys/role/SysRole.action?op=loadRoleUsers',function(ary){
            		   var htm='',obj={};
            		   for(var i=0;i<ary.length;i++){
            			   if(obj[ary[i].vcId])continue;obj[ary[i].vcId]=true
            			   htm+='<nobr val="'+ary[i].vcId+'" name="'+ary[i].vcName+'" title="'+ary[i].vcName+"["+ary[i].vcParId+']">'+ary[i].vcName+'<font>'+ary[i].vcParId+'</font></nobr>';
            		   }
                	   $('#orgusertree').html(htm);
                	   $('#orgusertree>nobr').click(function(){
                		   $('#orgusertree>nobr.sel').removeClass('sel');
                		   $(this).addClass('sel');
                	   }).mouseover(function(){
                		   $('#orgusertree>nobr.over').removeClass('over');
                		   $(this).addClass('over');
                	   }).mouseout(function(){
                		   $(this).removeClass('over');
                	   });
            	   });
            	   $("#operateWindowChildBtns").append('<span style="float:left;color:red;padding:7px;">此处仅显示拥有角色管理菜单权限的人员</span>');
            	   $('#btnClose').click(function(){
            		   $('#operateWindowChild').window('close');
            	   });
            	   $('#btnSetUser').click(function(){//确定按钮
            		   var span = $('#orgusertree>nobr.sel');
            		   if(span.length==0){
            			   $.messager.alert('提示','请选择要更换的人员');
            			   return;
            		   }
            		   $('#vcType').val(span.attr('val'));
            		   $('#zgryTd').text(span.attr('name'));
            		   $('#operateWindowChild').window('close');
            	   });
               });
	           //点击添加按钮操作
			   $('#addBtn').click(function(){
                  $('#SysRole').submit();
	            });
	            //表单验证及提交处理操作
	           $('#SysRole').form({
			        url:'<%=modifyActionName%>',
			        onSubmit: function(){
                         setSelectedMenus();
			             if($(this).form('validate')){
			                 $.util.showLoading();
			                 $('#operateWindow').window('close');
                            return true;
			             }else{
			                return false;
			             }
			        },			        
			        success:function(data){
			            $.util.removeLoading();
			            returnOptMsg(data);
			        }
				});
				
				
			$('#menuTable').tree({
			    checkbox: true, 
				url:'<%=path%>/sys/role/SysRole.action?op=searchAllMenuJsonTree&parId=0&roleId=<s:property value="po.vcId"/>',
				//打开节点时的操作
			    onClick:function (node){ 
			         if($('#menuTable').tree('isLeaf', node.target)){
			               	  $("#menuOpts").load("<%=path%>/sys/role/SysRole.action?op=openOptListPage", {menuId: node.id,menuText: node.text,roleId:"<s:property value="po.vcId"/>"}, function(){
							    setSelectedOpt(node.id);  //加载该菜单设置的功能项
							  });
						}	  
	                  else{
	                	  $("#menuOpts").empty();
	                	  $('#menuTable').tree('toggle',$('#menuTable').tree('getSelected').target);
	                  }
			       },
			    //加载数据失败的处理        
			    onLoadError: function () {    
	                $.messager.alert('消息提示','菜单树加载失败，请稍后再试！','error'); 
	            },
	            //加载成功后将当前角色具有的菜单进行选择
	            onLoadSuccess:function(){
	                
	            }                     
		      });   
		    
      });  
      
      //将用户点击菜单后选取的操作功能进行保存
      //功能实现：根据用户选择的操作功能，将这些功能以逗号分隔形成字符串存入id为菜单id的hidden表单中
      function getSelectedOpt(menuid){
         var opts = "";
         $(':checkbox:checked[name="opt'+menuid+'"]').each(function(){   
		     opts = opts+$(this).val()+",";      
          });
         opts = opts.substring(0,opts.length-1);
         //判断以菜单id为id的表单元素是否存在，不存在就建立该元素，并将opts的值赋给该元素
         if($('#chooseOpt'+menuid).html()==null){
             $('#south').append('<input type="hidden" id="chooseOpt'+menuid+'" name="chooseOpt'+menuid+'" value="'+opts+'"/>');
         }else{
             $('#chooseOpt'+menuid).val(opts);
         }
      }
      
      //打开页面后将用户原有选中的功能项进行选中
      //功能实现：获取id为菜单id的hidden表单值，与打开的功能页面中的功能项的value进行进行比较，如果value存在于hidden表单值中，将该功能项的状态设置为选中
      function setSelectedOpt(menuid){
          if($('#chooseOpt'+menuid).html()!=null){
              var opts = $('#chooseOpt'+menuid).val();
	          $(':checkbox[name="opt'+menuid+'"]').each(function(){ 
			       if((','+opts+',').indexOf(','+$(this).val()+',')>=0){//避免出现modify与modifySpec的情况时匹配有误的现象
				       $(this).attr("checked", true);  
				   }
	          });          
          }
      }
      
      //获取选中的节点并放入ID为menuIds的隐藏域中
      function setSelectedMenus(){
            var nodes = $('#menuTable').tree('getChecked');
            var menuIds = "";
            for(var i=0;i<nodes.length;i++){
                menuIds = menuIds +  nodes[i].id + ",";
            }
            menuIds = menuIds.substring(0,menuIds.length-1);
            $('#menuIds').val(menuIds);
      }
      
      
//-->
</script>
<style>
#orgusertree{width:100%;height:100%;}
#orgusertree nobr{float:left;text-align:left;cursor:pointer;line-height:20px;border:1px solid #499B33;background:#fafafa;width:100px;margin:2px 4px;overflow:hidden;padding:2px;}
#orgusertree nobr font{color:#ccc;}
#operateWindowChildMain #orgusertree nobr.sel{border:1px solid #79ADD2;background-color:#FBEC88;color:#333;}
#orgusertree nobr.over{background:#D4DFA7;}
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
<div id="roleFrame" class="easyui-layout" style="width:100%;height:100%;" fit="true">
  <div  region="west" split="true" style="width: 220px;"><ul id="menuTable"></ul></div>
  <div region="south" style="height:35%; overflow:hidden;"  border="false" >
	<s:form action="SysRole" method="post" theme="simple">
	<s:hidden id="vcId"  name="po.vcId" label="系统编号(主键)"></s:hidden>
	<s:hidden id="vcType"  name="po.vcType" label="所属模块ID(如LKJ管理，系统角色此标记为0)"></s:hidden>
	<s:hidden id="vcDelFlag"  name="po.vcDelFlag" label="删除标记(0未删除 1已删除)"></s:hidden>
     <table align="left"  width="100%" id="south" class="tb_add_th" >
		<tr>
		<th nowrap>名称:</th><td nowrap><s:textfield id="vcName"  name="po.vcName" style="width:75px"></s:textfield><font color="red">*</font></td>
		<s:if test="#request.isAdmin!=null">
		<th nowrap>是否公开:</th><td nowrap><s:select id="vcPublic"  name="po.vcPublic" style="width:40px"  list="#{0:'否',1:'是'}"></s:select>
		</td>
		</s:if>
		<s:if test="#request.zgry!=null">
		<th nowrap>主管人员:</th><td title="点击可以更改主管人员" id="zgryTd" nowrap style="cursor:pointer;color:black;"><s:property value="#request.zgry"/></td>
		<th nowrap>备注:</th><td><s:textfield id="vcMemo"  name="po.vcMemo"  style="width:85px"></s:textfield></td>
    <script>$(function(){$('#btnArea').append('<span style="float:left;color:red;padding:7px;">点击主管人员姓名可以更换主管人员</span>');});</script>
		</s:if><s:else>
		<th nowrap>备注:</th><td><s:textfield id="vcMemo"  name="po.vcMemo"  style="width:175px"></s:textfield></td>
		</s:else>
		<th nowrap>排序号:</th><td nowrap><s:textfield id="vcSeq"  name="po.vcSeq" style="width:25px"></s:textfield><font color="red">*</font></td>
		</tr>		
		<input type="hidden" id="menuIds" name="menuIds">
		<s:iterator value="#request.rolePermissList" status="permiss">
		<input type="hidden" id="chooseOpt<s:property value="vcMenuId"/>" name="chooseOpt<s:property value="vcMenuId"/>" value="<s:property value="vcOperation"/>"/>
		</s:iterator>
	</table>
	</s:form>
  </div>
  <div id="menuOpts" region="center"  style="overflow:auto;"></div>
</div>
</body>
</html>


